using Microsoft.AspNetCore.Mvc;
using UserManagement.Models;

namespace UserManagement.Services;

public interface IFileService
{
    /// <summary>
    /// 上传文件到服务器并记录元数据 
    /// </summary>
    /// <param name="file">客户端上传的文件</param>
    /// <returns>包含存储信息的文件记录</returns>
    Task<FileRecord> UploadFileAsync(IFormFile file);

    /// <summary>
    /// 根据文件ID下载文件 
    /// </summary>
    /// <param name="id">文件记录ID</param>
    /// <returns>FileResult可直接返回给客户端，若文件不存在则返回null</returns>
    Task<FileResult?> DownloadFileAsync(int id);
}